package com.yunshan.welfare.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yunshan.common.annotation.Excel;
import com.yunshan.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 优惠券管理对象 welfare_coupon
 *
 * @author yunshan
 * @date 2025-01-20
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class WelfareCoupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 优惠券名称 */
    @ApiModelProperty("优惠券名称")
    @Excel(name = "优惠券名称")
    private String name;

    /** 优惠券类型 */
    @ApiModelProperty("优惠券类型")
    @Excel(name = "优惠券类型")
    private String serveType;

    /** 收费方式1:免费 2:收费 */
    @ApiModelProperty("收费方式1:免费 2:收费")
    @Excel(name = "收费方式1:免费 2:收费")
    private Integer chargeType;

    /** 价格 */
    @ApiModelProperty("价格")
    @Excel(name = "价格")
    private BigDecimal price;

    /** 优惠券图片 */
    @ApiModelProperty("优惠券图片")
    @Excel(name = "优惠券图片")
    private String couponImg;

    /** 详情图 */
    @ApiModelProperty("详情图")
    @Excel(name = "详情图")
    private String detailsImg;

    /** 使用细则 */
    @ApiModelProperty("使用细则")
    @Excel(name = "使用细则")
    private String rule;

    /** 状态0:上架 1下架 */
    @ApiModelProperty("状态0:上架 1下架")
    @Excel(name = "状态0:上架 1下架")
    private Integer status;

    /** 是否删除0:未删除,1:删除 */
    @ApiModelProperty("是否删除0:未删除,1:删除")
    private Integer isDeleted;

    /** 发放量 */
    @ApiModelProperty("发放量")
    @Excel(name = "发放量")
    private Integer giveNum;

    /** 核销量 */
    @ApiModelProperty("核销量")
    @Excel(name = "核销量")
    private Integer verificationNum;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date endTime;


    /** 总数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String sunNum;

    /** 已使用数量 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String useNum;
}
